Message accessing

ABSTRACT

A request to retrieve a message directed to the user receiving from a user at an electronic device. The message has one of at least two different presentation modes by which it may be revealed to the user at the electronic device. The message is retrieved using one of at least two different communication networks depending on a presentation mode by which the message may be revealed.

BACKGROUND

[0001] In unified messaging (UM) (FIG. 1), for example, an individual'sdifferent messaging systems-voice 10, fax 12, email 14, text 16, video18, etc.—are consolidated in a single repository 20. The individual canaccess the messages through a remote UM messaging server 26 usingdifferent modes, for example, through the Internet 31 from a web browser28 of a computer 22 or by a dial-up call 32 from a telephone 24.

[0002] In the case of computer access, text messages are downloaded anddisplayed to the user. Voice messages are downloaded to the computer andrendered as digitized sound (e.g., .WAV) files or streamed to thecomputer (using streaming media server software from companies likeReal.com and Shoutcast) and performed using real-time media playingsoftware 30. The user can reply to a message or generate a new messageby sending an email. An Internet-enabled computer may also access a UMserver using instant messaging (IM) applications orvoice-over-IP/Internet telephony.

[0003] In the case of telephone access, after a user's validation codeis authenticated in response to the user interactively keying orspeaking the code, the UM server plays back his messages. Voice messagesare played back as originally recorded, and text messages (email, SMS,instant messaging, faxes) are played back by a text-to-speech voicesynthesis engine 29. An individual can reply to a message or generate anew message by placing a voice call.

[0004] Access to the messages in a repository can also be obtained at auser's fax machine or networked printer 36. The user registers the faxmachine or networked printer with the UM message server, which thenspools his text messages to the machine or printer. Voice messages caneither be elided or automatically transcribed to text using a speechrecognition system 31. The fax machine and the networked printer 36provide only a unidirectional or read-only access mode, unlike the webbrowser 28 and the telephone 24.

[0005] An advantage of using a computer rather than a telephone toaccess messages is that the user sees his email messages, rather thanonly hearing them. When viewing a text message, he can scroll backwardand forward through the message, re-read parts of the message, skip overuninteresting parts, pause to show the message to someone else, and soon. This flexibility is more difficult to provide when accessing textmessages through a voice-only interface. Typical voice interfaces readevery word of an email, for example, even a CC list, which could containmany names.

[0006] The advantages of both computer and phone message accessing arebecoming available through integrated devices such as mobile phonesequipped with Internet browsers. Such phones can interact with webservers using standard hypertext transfer protocol (HTTP), but theirsmall screens are capable of displaying only a small amount ofinformation. The phones also typically have limited memory capability,limited bandwidth, and cannot render some common types of files in theirnative formats, for example, HTML, GIF, JPEG, MPEG, WAV, PDF, MSWord,PowerPoint, and Excel.

SUMMARY

[0007] In general, in one aspect, the invention features a method thatincludes (a) enabling a user of a wireless phone to make successiveselections of messages from a list of messages displayed on the phone,the list including both voice messages and text messages, the selectionsincluding voice messages and text messages in any arbitrary order, and(b) without requiring any different action by the user, switching backand forth between responding to selections of voice messages by audiblyplaying back the messages to the user and responding to selections oftext messages by displaying at least portions of the messages.

[0008] In general, in another aspect, the invention features a methodthat includes, in response to a user selecting a voice messageidentified on a display of a wireless phone, (a) automaticallyinitiating a call to a voice message system on which the voice messageis stored, (b) having the voice message system authenticate the call,and (c) receiving an audibly played back version of the voice messagefrom the voice message system.

[0009] In general, in another aspect, the invention features a methodthat includes, at a wireless phone, (a) enabling a user to invoke linksassociated with voice messages and non-voice messages to be retrieved,the links being displayed to the user, and (b) at the wireless phone,switching automatically between responding to invocation of a voicemessage link by dialing a telephone number associated with the link, andresponding to invocation of a non-voice message link in a manner otherthan dialing a telephone number.

[0010] In general, in another aspect, the invention features a methodthat includes, at a wireless phone, in response to selection by a userof a voice message to be retrieved, dialing a string that includes aphone number of a voice message system and digits that are sufficient toenable the voice message system server to identify the user and theselected message.

[0011] In general, in another aspect, the invention features a methodthat includes, at a wireless phone, receiving data that (a) identifies aremotely stored message belonging to a user of the phone and (b)includes information that (i) associates the message with the user and(ii) is encoded to restrict unauthorized access by others, and inresponse to a request by the user for retrieval of the message,returning the encoded information to a server for use in authentication.

[0012] Implementations of the invention may include one or more of thefollowing features. The information is generated by a hashing algorithm.The data includes an index identifying the message from among othermessages belonging to the user. The encoded information is also storedfor use by the server and is automatically deleted from the server basedon its aging.

[0013] In general, in another aspect, the invention features a methodthat includes (a) receiving from a user at an electronic device arequest to retrieve a message directed to the user, the message havingone of at least two different presentation modes by which it may berevealed to the user at the electronic device, and (b) retrieving themessage using one of at least two different communication networksdepending on a presentation mode by which the message may be revealed.

[0014] Implementations of the invention may include one or more of thefollowing features. The electronic device comprises a wireless device.The wireless device comprises a telephone. One of the modes comprisesperformance of a multimedia message. The multimedia message comprises avoice message. One of the modes comprises displaying characters. Theretrieving comprises requesting the message from a message server. Oneof the modes comprises performance of a multimedia message, and theretrieving of the multimedia message comprises initiating a dial-upphone call to a message server. The multimedia message comprises a voicemessage and the retrieving includes receiving a spoken version of thevoice message. One of the modes comprises displaying characters, and theretrieving of the message comprises sending a request through a networkto a message server. At the electronic device, information is receivedidentifying messages directed to the user, and the information isprovided to the user at the electronic device for selection of a messageby the user. The information includes uniform resource locatorinformation that enables accessing the messages through at least one ofthe communication networks. The information includes a phone number atwhich a message can be retrieved. The identifying information isreceived through a communication network. The identifying informationincludes information identifying a user and a message number associatedwith each of the messages. The information identifying the user and themessage number is encoded securely. The encoded information is includedin the request to retrieve. The information is stored remotely from theelectronic device, the information permitting a server to respond toselection of the message even though communication between the serverand the electronic device conforms to a stateless protocol.

[0015] In general, in another aspect, the invention features a methodthat includes (a) informing a user of an electronic device of messagesthat are available for retrieval, each of the messages having one of atleast two different presentation modes by which it may be revealed tothe user at the electronic device, (b) receiving from the user aselection of one of the messages to be retrieved, the selection beingmade in a manner that is unrelated to the presentation mode by which itmay be revealed, (c) revealing the message to the user in itspresentation mode, (d) receiving from the user a selection of anotherone of the messages to be retrieved, the selection being made in amanner that is unrelated the presentation mode by which the othermessage may be revealed, and (e) revealing the other message to the userin its presentation mode.

[0016] Implementations of the invention may include one or more of thefollowing features. The informing includes displaying a list of themessages to the user. The receiving includes enabling the user toindicate a selection through a graphical user interface. The revealingincludes displaying a text message or playing a voice message.

[0017] In general, in another aspect, the invention features a methodthat includes providing to an electronic device, information that isconfigured to enable the electronic device: to retrieve messages usingat least two different communication networks depending on apresentation mode by which each of the messages may be revealed, theelectronic device being enabled to a request for a message, and toenable a user to select messages in a manner that is unrelated to thepresentation mode by which the messages may be revealed.

[0018] Implementations of the invention may include one or more of thefollowing features. The information that is provided to the electronicdevice is expressed in a mark-up language. The information that isprovided to the electronic device is encoded to prevent loss.

[0019] In general, in another aspect, the invention features a methodthat includes enabling a user of an electronic device to make aselection of a message to be retrieved from a message server, inresponse to the selection, issuing a string of characters that includesa phone number that is associated with the message and is capable ofcausing the electronic device to execute a phone call to the server, anda character string that identifies the user and enables the server toauthenticate the user.

[0020] Other advantages and features will become apparent from thefollowing description and from the claims.

DESCRIPTION

[0021] (FIG. 1 is a block diagram of a messaging system.

[0022]FIG. 2 is a block diagram of a messaging system.

[0023]FIG. 3 is a flowchart.

[0024]FIG. 4 shows a mobile phone.

[0025]FIG. 5 shows source code of a page.

[0026]FIG. 6 is a flowchart.

[0027]FIG. 7 is a block diagram of a messaging system.)

[0028] Unified message access to both voice and text messages can beprovided through a simple seamless user interface even for users of adevice, such as a mobile phone, which does not have enough communicationbandwidth, memory, or processing capacity to effectively handledigitized audio information. The interface can be arranged so that theuser is not required to perform two different operations to access voicemessages and email messages.

[0029] In one simple approach, the UM server could give a user access toboth voice messages and email messages on his Internet-enabled phone bysimply treating the web browser of the phone the same way the UM servertreats a web browser running on a standard personal computer. The UMserver would send to the phone's browser both email messages anddigitized audio corresponding to voice messages to be played by theaudio-playing application resident on the phone, using HTTP or HTTPS asthe transport mechanism in both cases. If a user wished to listen to allhis messages, including textual ones, or read all his messages,including voice ones, a text-to-speech or speech-to-text component couldbe applied at the server or the mobile device.

[0030] Another approach, which does not burden the mobile phone withprocessing digital voice message data and does not require the mobilephone to support the processing of digitized audio files, uses thesupport for hyperlinks to phone numbers that is provided by typicalwireless application protocol (WAP) web browsers installed on mobilephones. In addition, one can develop a web browser application foremergent phone-based operating systems such as J2ME™ (available from SunMicrosystems, http://java.sun.com), and BREW™ (available from QualcommIncorporated, http://www.qualcomm.com/brew) which support hyperlinkedphone numbers. By a hyperlinked phone number, we mean a link that can beinvoked by a user and which has an associated phone number that isautomatically dialed when the link is invoked. When the call isdisconnected, the phone reverts back to its state (web access mode) thatexisted prior to the call. This feature enables a seamless transitionback and forth between a state in which email messages are accessedthrough the Internet (using HTTP) and a state in which voice messagesare accessed through cellular or land-line telephone communication.

[0031] As shown in FIG. 2, a session in which messages are madeavailable to a mobile phone 62 is managed by a UM messaging server (alsocalled a UM front end) 64. The UM server is a computer (including aprocessor, memory, mass storage, communication devices, and input/outputdevices) running software that enables it operate as a web server in itsinteraction with the phone 62 and as a client with respect to arepository 66. The UM messaging server has access to FAX, emails, andother text messages held in one or more repositories 66. The messagingserver also has access to information identifying voice messages thatare stored as audio files in the same or a different repository 68.

[0032] As shown in FIG. 7, the UM server mediates between therepositories of a user's messages—a voice message server 140 and anemail message server 142, for instance—and the accessing devices forthose messages-PCs 144, phones 146, and mobile Internet-enabled devices148. The UM server stores in a local database 150 information about eachuser 149, including

[0033] (a) information required to access messages from the emailserver, including the name of the server and its communications protocol(e.g. POP3, IMAP4, HTTP, MAPI) and the user's password and ID 152, (b)preferences for that user 154, including whether he wishes words to beabbreviated (“United States” to “U.S.” for instance) when he is readingemail on a small-screen device, and (c) cached messages 156, includingmessages the user has accessed recently. The UM server also holds atable 191 that associates each of the devices 193 that are served by theserver with the identity of the owner (or authorized user) of thedevice.

[0034] In general, the repositories and origin servers of messages, bothvoice and email, are distinct from the UM server, although in some casesthe UM server may also be responsible for storing the messages, in whichcase the per-user system state would also contain the messages belongingto the user.

[0035] Because it is capable of transmitting messages to variousdifferent devices, the UM server will in some implementations contain aTTS (text to speech) subsystem, in order to deliver textual emailmessages to a person listening on a traditional phone over a “POTS”(plain old telephone system) line. In some cases, a TTS subsystem is auseful feature even for users who are accessing the UM server from anInternet-enabled mobile phone. For example, the mobile phone may offeronly voice but not data service when the phone is out of range fordigital data communication. In some cases, even when the handset iscapable of digital data communication, the user may be able to listen tothe phone but not read the phone's display, for example when driving orif the user is visually impaired. In these cases, the TTS componentwithin the UM server enables user access to email messages.

[0036] The messaging server manages the switches between a text messagestate—in which the user of the mobile phone can view the text of email,text, and FAX messages on his phone's display 70—and a voice messagestate, in which the user can listen to voice messages on the speaker 72of the phone. In general, the UM messaging server may interface with awide range of data sources other than those depicted. In some cases themessaging server may not fetch requested email messages from the emailrepository in direct response to requests, but instead may download themessages, cache them, and manage them locally (in the messaging server).

[0037] The state of the system (text or voice) is determined by thechoices that a user makes with respect to a list of messages that arepresented on the display of his phone. As explained later, the entriesin the displayed list are presented in essentially the same mannerwhether they relate to voice messages or text messages. And the userperforms the same action to invoke a message on the list whether themessage is a voice message or a text message. Transparently to the user,the browser and the server cooperate to cause the state of the system toshift between voice messages and text messages depending on the messageselected by the user. Voice messages are delivered in audio through thephone and text (character-based) messages are delivered as charactersand displayed to the user on the display of the telephone.

[0038] As shown in FIG. 3, the process of using the system of FIG. 2begins with the user starting the web browser on his mobile phone andusing (80) a universal resource locator (URL) to establish acommunication with the messaging server, for example, by keying the URLexplicitly into the browser or by selecting a predefined bookmarkcorresponding to the URL.

[0039] A user authentication process (82) is performed at the server.The messaging server receives the request to log in from the phone and,in response, transmits to the phone a web page containing anauthentication form, prompting for a user ID and password. The user keysin his user ID and password and submits the information to the messagingserver. Upon receipt and verification of this information, the messagingserver validates the user against an internal database of registeredusers 65 (FIG. 2) For this purpose, the database includes a list of(userid/password) pairs, to permit validation of a putative user when hesubmits these two pieces of information. If the submitted informationdoesn't match any registered user entry in the database, the messagingserver returns a “please try again” web page to the user's browser, withthe same form as before.

[0040] In some cases, the user authentication process may beabbreviated. For example, most Internet-enabled phones transmit, alongwith an HTTP GET request for data, information which uniquely identifiesthe handset to the server. This information is transmitted automaticallyin the HTTP headers. For a UP-style WAP device, for example, theinformation appears in the ‘x-up-subno’ (subscriber number) field of theheaders. When the handset can be uniquely identified by UM server byautomatic inspection of the HTTP request, the UM server can consult itsdatabase of devices to see if a user has already registered the devicewith the server. If this is the case, the UM server already knows the IDof the user, and can elide this query, prompting only for the user'spassword. (See FIG. 7). Whether a particular implementation allows usersto register their devices with the UM server or not is dependent on thepolicy enacted by a system administrator.

[0041] Once a user has been authenticated, the message server delivers(84) to the user a web page, in a markup language compatible with therequesting device, containing a list of hyperlinked messages, sorted inreverse chronological order. FIG. 4 shows the list of available messages120 displayed (86) to the user. Both email messages 122 and voicemessages 124 are listed. The display may be scrolled left and right todisplay an entire entry in the list. All of the entries in the list aredisplayed in a similar manner. The display shown in FIG. 4 is only oneexample. There are a variety of ways in which the entries can bedisplayed. In FIG. 4, each entry occupies a single line of the display.The line begins with an index 126 identifying the number of the messagein the list. The index is followed by a message title 128. In the caseof voice messages the title is simply “voice message”. If the UM serverhas access to the phone number or other identifying information aboutthe caller, that too can be displayed. For text messages, the title isthe name of the sender of the message. After the title, the time 130when the message was sent appears.

[0042] The user may then select (88) any of the messages for review bymoving a cursor 132 up and down to reach the message of interest andthen pressing the SEND button 134. A variety of other techniques couldbe used to enable the user to select a message, including a touchscreenor pointing device, available on some mobile devices.

[0043] Each of the lines in the list 120 represents a link to themessage identified in the line. If (90) the user selects a linkcorresponding to an email message (e.g., message 1, 2, or 4), thebrowser 73 in the phone sends a corresponding HTTP request (92) for thatmessage to the UM server 64. The UM server software responds by fetchingthe requested message from the email message repository and delivering(94) the message (in the form of a web page, using HTTP) to the phone.The browser on the phone then displays the message to the user.

[0044] To deliver the message to the phone may require that the UMserver transform the content of the original message-which may be in aformat not compatible with the target device or which may containattachments in a format not compatible with the target device-so theyare compatible with the target device. Delivering the message to thephone also requires that the UM server honors the constraints of thetarget device, including memory limitations which impose an upper limiton the file size of a document delivered to the device. Performingstateful “repurposing” of an email message is described in U.S. patentapplication Ser. No. 09/898,134, filed on Jul. 3, 2001, and incorporatedby reference.

[0045] If the user selects a link corresponding to a voice message(e.g., message 3 or 5), the browser or the phone operating systemfetches the phone number corresponding to the link, and the phone dials(96) the phone number of an automatic voice messaging system 68 followedby a pause, followed by a validation code uniquely identifying the userand message to the voice messaging system. Thus the dialing sequence is:

[0046] (phone number) (pause) (validation code—user ID and message#)

[0047] The call is made through the user's wireless carrier 69. Thevoice messaging system 68 answers the call, processes the validationcode, and plays back the identified message as audio through thewireless carrier 69 and the phone's speaker, and then disconnects. Inother schemes, the user can indicate in the displayed more than onevoice message that he wishes to receive, and the voice messaging systemplays back all of those messages before disconnecting. In other schemes,after playing the required message, the voice messaging system may notterminate the call, but instead offer the user a menu of options,including any features that are otherwise available from the voicemessaging system (such as replay, delete, save, forward).

[0048] When the browser or operating system of the phone determines thatthe call has disconnected, the display of the pending list of availablemessages is refreshed. In the case of an email message that has beendisplayed, when the user indicates that he is finished reviewing theemail message, the message list is again displayed.

[0049] The information that is displayed to the user in the message listand the manner in which it is displayed and in which the user interactswith and controls it can include a wide variety of features not shown inthe example of FIG. 4.

[0050] The information displayed to the user can be seen in the sourcemarkup language document of FIG. 5 that is sent from the server to thebrowser. The code defines the selection that the user can make amongfive listed messages. Each option includes the text 85 to be displayedto the user and a related URL. In the case of email messages, the URL 81is directed to the messaging server www.x.com and identifies the messageby a hash 87 to be described later. In the case of voice messages, theURL 83 is directed to a telephone number, wp/mc;+18005551212 of thevoice message system in which the voice message is stored and identifiesthe message by a code that identifies the user and the requested messageto the messaging server. When the messaging server answers the phonecall, it hears the code, validates the user based on the code, anddeliver the requested message. When the user requests a message, if thestored hyperlink is of the form http://www.xyz.com/foo, the browsersends the HTTP GET request “foo” to the server www.xyz.com. If thehyperlink is of the form wp/mc;+18005551212 34526, then the phone dialsthe phone number 1-800-555-1212 followed by the code 34526.

[0051] Maintaining State

[0052] Given that HTTP is a stateless protocol, the message server musthave a way to “remember”, between transactions with the phone client,(a) which user is using the phone, and (b) which message the user wantsto access.

[0053] One typical way to do this uses a Java servlet mechanism toembed, in the URLs included in the list provided from the server to thebrowser, the information needed to authenticate the user and identifythe desired message. The server knows the user's ID and the messageidentifier when it assembles the list to be sent to the browser.

[0054] When the user selects a particular message, his browser returnsan HTTP request that includes the message number and the user ID. Forinstance, imagine that the URL for the messaging server ishttp://www.x.com and the user's ID is 123456. The URL corresponding to arequest to ‘view email message #6 for this user’ might be, in this case,

[0055] http://www.x.com/email.jsp?u=123456&m=6

[0056] When the user selects this email from the displayed list, thebrowser would send an HTTP request for “/email?u=123456&m=6” to themessaging server, assuming the messaging server is assigned to the IPaddress whose name is http://www.x.com.

[0057] Because the messaging server would have stored the informationabout the messages, the messaging server would recognize the return URLas a request for the sixth email message for user 123456's email, andwould generate the appropriate web page to send back to the user. Onecould think of the http://www.x.com as the address on the outside of theenvelope and the /email?u=123456&m=6 as the “payload”, or informationinside the envelope.

[0058] Other approaches could also be used to track sessions with users.

[0059] Security

[0060] Scenario 1: Imagine that a user accesses his messages using amobile phone and then drops or misplaces the phone. Suppose anotherperson picks up the phone. Whether the web browser is still on or isoff, it is likely that the page containing the links to the user'smessages still resides in the browser's cache. It would be unfortunateif this second person could access the user's messages simply by pickingup the phone and clicking on one of the ‘message’ links. In somesettings (for instance, HIPAA confidentiality requirements in medicine),a system with such a security gap would not permitted to be used at all.

[0061] Scenario 2: Equipped with the knowledge of another person's userID, a malicious third party could, even without physical access to theuser's phone, access that person's messages simply by visiting (forexample) the URL http://www.x.com/email jsp?u=123456m=4 to see theuser's fourth most recent message.

[0062] These concerns can be reduced using a time-sensitive encryptiontechnique, which we describe for the encoding of URLs first for emailmessages and then for voice messages.

[0063] In examples of this technique, rather than using the servletrequest “/emailjsp?u=123456&m=6” to convey “the sixth message for user123456”, the messaging server instead encrypts the (user, message)information of inclusion in the message list that it sends to thebrowser.

[0064] As shown in FIG. 6, first, the server software prepends (102) theindex number of the message in the list of available messages to theuser ID, in this case yielding the string “6123456”, called x in thefollowing table. The user ID is a number assigned by the messagingserver uniquely to each user. Then, the server software applies (104) a(one-way) hashing function h to this string to generate an n-digitsequence, where n is an integer such as 8. The server then stores (106)the hashed n-digit sequence, along with the original number and thecurrent time, in a lookup table in the server. The contents of the tablefor a given user might be as follows: Original Message Hash h(x) Numberx User Number Timestamp 18573028 2948563 948563 2 11.02.01 @ 23:11.0336465659 119223001 223001 119 11.02.01 @ 23.11.09 99550023 22140199140199 22 11.02.01 @ 23.11.11

[0065] Thus, rather than encoding the userID and message numberexplicitly in the URL that is included in the list sent to the phone,the message server instead applies the hashing function to these twovalues as described, stores an entry in the hash column, and encodes theURL (108) in the following way:

[0066] http://www.x.com/email.jsp?x=[hash]

[0067] For example, assume that h(119223001)=36465659. Then instead ofusing

[0068] http://www.x.com/email.jsp?u=223001&m=119,

[0069] the server would use

[0070] http://www.x.com/email.jsp?x=36465659

[0071] When the messaging server receives from the phone, via HTTP, theservlet request “/emailjsp?x=36465659”, the server consults thecurrently active table of hashes, decodes the hash into a (user, messagenumber), and delivers to the phone the desired message number for thatuser.

[0072] As an extra security precaution, the server continuously sweepsthrough the table above, clearing out rows that are older than a presetvalue (five minutes old, say). If the messaging server receives arequest for a hash not found in the table, the messaging server respondsby requiring that the user provide his ID and password again.

[0073] Under this policy, a malicious user in possession of a user's IDwill be unable to access the user's messages, unless he also has theuser's password (which would enable him to re-register as the user).Even obtaining physical access to the user's phone would not help themalicious user as long as the authorized user wasn't actively using thephone to interact with the messaging server in the previous five (say)minutes.

[0074] An analogous mechanism works for dialing into a messaging serverthrough the telephone. In this case, the http://www.x.com is replacedwith the phone number of the automated telephone-based messaging server,say 800-555-1212. The payload, which in the case of HTTP was the servletrequest “/emailjsp?x=9234239”, is now a provided as a sequence of digits(the hash discussed above, which validates the user) following the phonenumber itself.

[0075] Serving Emails

[0076] Information about one way to configure emails and attachments forrendering on a device of limited capability, such as the phone discussedabove, can be found in U.S. patent application Ser. No. 09/898,134,filed Jul. 3, 2001, and incorporated by reference.

[0077] As discussed there, a transformation server reconfigures andsegments documents so they may effectively be viewed on the mobilephone's display. The transformation server acts as a proxy for themobile phone, intercepting requests from the phone for messages,fetching the requested messages from the messaging server, andreconfiguring the messages for transmission to and display on the phone.Honoring the phone's document-size limits, the transformation serverpartitions the reconfigured message into segments, each of digestiblesize for the phone. The server transmits the first of these segments tothe phone and caches the rest, delivering them on request. Thetransformation server acts as a client to the messaging server,communicating via POP or IMAP or HTTP or any other mail communicationprotocol to fetch messages from the messaging server. After transformingthe messages for display on the mobile phone, the transformation servertransmits the message to the phone through a gateway server, usingHTTPS.

[0078] Other implementations are also within the scope of the followingclaims.

[0079] For example, although the description has discussed the exampleof receiving messages on a wireless phone, other receiving devices mightbe used, including non-wireless devices connected by dialup connectionor through a local area network or wide area network to the messagingserver. The devices need not be phones but could be personal digitalassistants, notebook computers, desktop computers, or any other kind ofelectronic device. The kinds of messages that may be received are notlimited to the ones mentioned earlier. Any kind of message could bereceived. Although we have used the words audio, voice, and video todescribe certain kinds of messages received, other kinds of multimediamessages may also be handled in similar ways.

[0080] The description presented above suggests an example in which themessage server and the repositories have particular relationships andconfigurations. But a wide variety of message server/repositoryconfigurations including any number of different units interconnected ina variety of ways would work. For example the repository can be part ofthe message server, and the message server can be partitioned into anumber of different units. There can be multiple messages servers andmultiple repositories.

[0081] Protocols other than WML and HTTP may be used for communicationof requests and lists of messages and for other features of the system.Various platforms for embedding of the locators can be used. Theexamples given earlier are only examples.

[0082] Implementation of the features and techniques discussed earliercan be done in hardware, firmware, software or any combination of them.The phone or other device can have a variety of underlying operatingsystems.

[0083] The communication between the server and the phone or otherdevice need not be through the Internet or other TCP/IP network. WAP andsome other handheld Internet-enabled devices do not always use TCP/IP asthe communication protocol.

1. A method comprising enabling a user of a wireless phone to makesuccessive selections of messages from a list of messages displayed onthe phone, the list including both voice messages and text messages, theselections including voice messages and text messages in any arbitraryorder, and without requiring any different action by the user, switchingback and forth between responding to selections of voice messages byaudibly playing back the messages to the user and responding toselections of text messages by displaying at least portions of themessages.
 2. A method comprising in response to a user selecting a voicemessage identified on a display of a wireless phone, automaticallyinitiating a call to a voice message system on which the voice messageis stored, having the voice message system authenticate the call, andreceiving an audibly played back version of the voice message from thevoice message system.
 3. A method comprising at a wireless phone,enabling a user to invoke links associated with voice messages andnon-voice messages to be retrieved, the links being displayed to theuser, and at the wireless phone, switching automatically betweenresponding to invocation of a voice message link by dialing a telephonenumber associated with the link, and responding to invocation of anon-voice message link in a manner other than dialing a telephonenumber.
 4. A method comprising at a wireless phone, in response toselection by a user of a voice message to be retrieved, dialing a stringthat includes a phone number of a voice message system and digits thatare sufficient to enable the voice message system server to identify theuser and the selected message.
 5. A method comprising at a wirelessphone, receiving data that (a) identifies a remotely stored messagebelonging to a user of the phone and (b) includes information that (i)associates the message with the user and (ii) is encoded to restrictunauthorized access by others, and in response to a request by the userfor retrieval of the message, returning the encoded information to aserver for use in authentication.
 6. The method of claim 5 in which theinformation is generated by a hashing algorithm.
 7. The method of claim5 in which the data includes an index identifying the message from amongother messages belonging to the user.
 8. The method of claim 5 in whichthe encoded information is also stored for use by the server and isautomatically deleted from the server based on its aging.
 9. A methodcomprising receiving from a user at an electronic device a request toretrieve a message directed to the user, the message having one of atleast two different presentation modes by which it may be revealed tothe user at the electronic device, and retrieving the message using oneof at least two different communication networks depending on apresentation mode by which the message may be revealed.
 10. The methodof claim 9 in which the electronic device comprises a wireless device.11. The method of claim 10 in which the wireless device comprises atelephone.
 12. The method of claim 9 in which one of the modes comprisesperformance of a multimedia message.
 13. The method of claim 12 in whichthe multimedia message comprises a voice message.
 14. The method ofclaim 9 in which one of the modes comprises displaying characters. 15.The method of claim 9 in which the retrieving comprises requesting themessage from a message server.
 16. The method of claim 9 in which one ofthe modes comprises performance of a multimedia message, and theretrieving of the multimedia message comprises initiating a dial-upphone call to a message server.
 17. The method of claim 16 in which themultimedia message comprises a voice message and the retrieving includesreceiving a spoken version of the voice message.
 18. The method of claim9 in which one of the modes comprises displaying characters, and theretrieving of the message comprises sending a request through a networkto a message server.
 19. The method of claim 9 also including receivingat the electronic device information identifying messages directed tothe user, and providing the information to the user at the electronicdevice for selection of a message by the user.
 20. The method of claim19 in which the information includes uniform resource locatorinformation that enables accessing the messages through at least one ofthe communication networks.
 21. The method of claim 19 in which theinformation includes a phone number at which a message can be retrieved.22. The method of claim 19 in which the identifying information isreceived through a communication network.
 23. The method of claim 19 inwhich the identifying information includes information identifying auser and a message number associated with each of the messages.
 24. Themethod of claim 23 in which the information identifying the user and themessage number is encoded securely.
 25. The method of claim 24 in whichthe encoded information is included in the request to retrieve.
 26. Themethod of claim 19 in which information is stored remotely from theelectronic device, the information permitting a server to respond toselection of the message even though communication between the serverand the electronic device conforms to a stateless protocol.
 27. A methodcomprising informing a user of an electronic device of messages that areavailable for retrieval, each of the messages having one of at least twodifferent presentation modes by which it may be revealed to the user atthe electronic device, and receiving from the user a selection of one ofthe messages to be retrieved, the selection being made in a manner thatis unrelated the presentation mode by which it may be revealed,revealing the message to the user in its presentation mode, receivingfrom the user a selection of another one of the messages to beretrieved, the selection being made in a manner that is unrelated thepresentation mode by which the other message may be revealed, andrevealing the other message to the user in its presentation mode. 28.The method of claim 27 in which the informing includes displaying a listof the messages to the user.
 29. The method of claim 27 in which thereceiving includes enabling the user to indicate a selection through agraphical user interface.
 30. The method of claim 27 in which therevealing includes displaying a text message or playing a voice message.31. A method comprising providing to an electronic device, informationthat is configured to enable the electronic device: to retrieve messagesusing at least two different communication networks depending on apresentation mode by which each of the messages may be revealed, theelectronic device being enabled to a request for a message, and toenable a user to select messages in a manner that is unrelated to thepresentation mode by which the messages may be revealed.
 32. The methodof claim 31 in which the information that is provided to the electronicdevice is expressed in a mark-up language.
 33. The method of claim 31 inwhich the information that is provided to the electronic device isencoded to prevent loss.
 34. A method comprising enabling a user of anelectronic device to make a selection of a message to be retrieved froma message server, in response to the selection, issuing a string ofcharacters that includes a phone number that is associated with themessage and is capable of causing the electronic device to execute aphone call to the server, and a character string that identifies theuser and enables the server to authenticate the user.
 35. The method ofclaim 34 in which the phone number is stored as part of a hyperlink.